home *** CD-ROM | disk | FTP | other *** search
- # This script acts as a simple interface for building extensions.
- # It primarily used by the perl Makefile:
- #
- # d_dummy $(dynamic_ext): miniperl preplibrary FORCE
- # ext/util/make_ext dynamic $@
- #
- # It may be deleted in a later release of perl so try to
- # avoid using it for other purposes.
-
- linktype=$1
- extspec=$2
-
- case $CONFIG in
- '')
- if test -f config.sh; then TOP=.;
- elif test -f ../config.sh; then TOP=..;
- elif test -f ../../config.sh; then TOP=../..;
- elif test -f ../../../config.sh; then TOP=../../..;
- elif test -f ../../../../config.sh; then TOP=../../../..;
- else
- echo "Can't find config.sh generated by Configure"; exit 1
- fi
- . $TOP/config.sh
- ;;
- esac
-
- if test "X$extspec" = X; then
- echo "make_ext: no extension specified"
- exit 1;
- fi
-
- # convert old style Name.a into ext/Name/Name.a format
- case "$extspec" in
- ext/*) ;;
- *) extspec=`echo "$extspec" | sed -e 's:\(.*\)\.\(.*\):ext/\1/\1.\2:'`
- esac
-
- # get extension directory path, module name and depth
- pname=`echo "$extspec" | sed -e 's:^ext/::' -e 's:/[^/]*$::'`
- mname=`echo "$pname" | sed -e 's!/!::!'`
- depth=`echo "$pname" | sed -e 's![^/][^/]*!..!g'`
-
- if test ! -d "ext/$pname"; then
- echo " Skipping $extspec (directory does not exist)"
- exit 0 # not an error ?
- fi
-
- # check link type and do any preliminaries
- case "$linktype" in
- static) makeargs='CCCDLFLAGS=' ;;
- dynamic) makeargs='' ;;
- *) echo "make_ext: unknown link type '$linktype'"; exit 1;;
- '') echo "make_ext: no link type specified (eg static or dynamic)"; exit 1;;
- esac
-
- echo ""
- echo " Making $mname ($linktype)"
-
- cd ext/$pname
-
- if test ! -f Makefile ; then
- test -f Makefile.PL && ../$depth/miniperl -I../$depth/lib Makefile.PL
- fi
- if test ! -f Makefile ; then
- test -f Makefile.SH && sh Makefile.SH
- fi
-
- make=${altmake-make}
-
- $make config
-
- $make $linktype $makeargs
-
- exit $?
-